package org.jaaksi.commondemo.view;

import android.content.Context;
import android.util.AttributeSet;
import android.widget.LinearLayout;

/**
 * 创建时间：2017年04月10日15:16 <br>
 * 作者：fuchaoyang <br>
 * 描述：
 */

public class MeasureView extends LinearLayout {
  public MeasureView(Context context) {
    super(context);
  }

  public MeasureView(Context context, AttributeSet attrs) {
    super(context, attrs);
  }

  /**
   * 这个方法时在measure的时候调用的，而measure是父容器调用的,child.measure
   * 这两个参数就是父控件告诉子控件可获得的空间以及关于这个空间的约束条件
   * 比如父控件 高度200dp,这里MeasureView设置高度为wrap_content,那么parent调用child.measure
   * 这里的heightMeasureSpec的mode就是AT_MOST,size就是200dp转像素
   * 如果MeasureView设置高度为300dp，（父控件只有200dp），就给予这个mode为EXACTLY，size仍然为300dp转像素
   *
   * @param heightMeasureSpec -2147482748 -2147481794
   */
  @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    int height = getHeight();
    System.out.println("height = " + height);
    int size = MeasureSpec.getSize(heightMeasureSpec);
    System.out.println("size = " + size);
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);
  }
}
